# !/usr/bin/env python
# -*- coding: utf-8 -*-
# ///////////////////////////////////////////////////////////////
# @File    :   kingmed.py
# @Time    :   2024/08/15 15:20:20
# @Author  :   kai.luo
# @Version :   1.0.0
# @Desc    :   检验结果报告单（重庆金域医学检验所）
# draw_ocr, draw_structure_result, save_structure_res
# ///////////////////////////////////////////////////////////////

from moudles.Common.common import *
from moudles.MedicalReportForm.commonLibrary.common import *

from .getChongqinImageHeaderData import ChongqinHeaderInfo
from .getChongqinImageMainData import ChongqinMainInfo
from .getChongqinImageFooterData import ChongqinFooterInfo

# from moudles.MedicalReportForm.commonLibrary.getImageFooterData import FooterInfo


class Chongqin(object):
    """
    'use_gpu=False'不用gpu，默认使用GPU
    'use_angle_cls=True'自动下载相关的包
    'lang="ch"'设置语言，支持中英文、英文、法语、德语、韩语、日语，参数依次为`ch`, `en`, `french`, `german`, `korean`, `japan`
    离线使用时，设置模型的目录det_model_dir、rec_model_dir、cls_model_dir第一次联网模型会自动下载到model目录下
    """

    def __init__(self, **kwargs):

        self.image_data = list()  # 每张图片解析后的数据
        self.form_base_data = list()  # 基本信息

    def getChongqinImageData(self, result,  headerHeight, foortHeight, del_col_name_list, add_col_name_dict):
        """
        获取图片数据
        Args:
            result (_type_): 数据列表
        """
        image_data = []  # 整张图片的数据

        # 获取项目开始的坐标
        productStartPos = findProductStartPos(result)
        if isinstance(productStartPos, str):
            # self.mainUI.pushButton_3.setText(productStartPos)
            return

        # 获取区块数据
        imageBlockData = getImageBlockData(result, productStartPos, headerHeight,
                                           foortHeight, del_col_name_list, add_col_name_dict)
        # print(f'imageBlockData---{imageBlockData}')
        header_title_data_list, header_base_data_list, main_title_data_list, main_base_data_list, footer_data_list = imageBlockData
        # print(f'header_title_data_list----{header_title_data_list}')
        # print(f'header_base_data_list----{header_base_data_list}')
        # print(f'main_title_data_list----{main_title_data_list}')
        # print(f'main_base_data_list----{main_base_data_list}')
        # print(f'footer_data_list----{footer_data_list}')

        # 解析头部信息
        chongqinHeaderInfo = ChongqinHeaderInfo()
        chongqinHeaderTitle = chongqinHeaderInfo.getHospitalName(header_title_data_list)  # 解析头部标题信息
        image_data.append(chongqinHeaderTitle)

        chongqinHeaderInfo = chongqinHeaderInfo.getHeaderInfo(header_base_data_list)  # 解析头部基本信息
        image_data.append(chongqinHeaderInfo)

        # 解析项目信息
        chongqinMainInfo = ChongqinMainInfo()
        main_title_indx_list = chongqinMainInfo.parserMainTitleIndex(main_title_data_list)  # 解析项目的标题

        mainContexts = chongqinMainInfo.parserMainContexts(main_title_indx_list, main_base_data_list)  # 解析项目的内容
        image_data.append(mainContexts)

        # 解析尾部信息
        chongqinFooterInfo = ChongqinFooterInfo()
        footerData = chongqinFooterInfo.parserFooterData(footer_data_list)
        image_data.append(footerData)

        # print(f'image_data-----{image_data}')

        return image_data
